package com.rykj.qxj.server.util.object;

/**
 * 常量工具类
 * @author lilong@tsinghuabigdata.com
 * @date 2014-3-24下午3:53:27<br/>
 * @version 1.0
 */
public class ConstUtils {
	public  final static String[] IMAGE_SUFFIX={"jpg","png","gif","jpeg"};
	public  final static String IMAGE_SUFFIX_STR="jpg,png,gif,jpeg";
	public  final static String[] DOC_SUFFIX={"doc","xls","txt","pdf","afd"};
	public  final static String DOC_SUFFIX_STR="doc,xls,txt,pdf,afd";
	
	public  static String CREATE_AFD_URL="";
//	public  static String IMAGE_SERVER_BASE_URL="";
	public  static final String QUESTION_IMAGE_SERVER_BASE_URL="/resources/public/image/";
	/**
	 * 系统内具有相同意义的数据存放于同一属性下时，数据之间定义的分隔符("#%#")
	 */
	public final static String SEPARATE="#%#";
	
	/**
	 * restful API同一属性多个参数之间的分隔符
	 */
	public final static String SEPARATE_REST_PARAM=",";
	
	/**
	 * HBase中存储PST、PGC文件的第二层数据分隔符("%#%")
	 */
	public final static String SEPARATE_HBASE_PST_PGC="%#%";
	
	/**
	 * socket请求发起和解析时的消息内容结束标志
	 */
	public final static String SOCKET_REQUEST_ENDCHAR="##%%##";
	
	/**
	 * 将以ConstUtils.SEPARATE为分隔符的字符串切分为数组
	 * @param str 以ConstUtils.SEPARATE为分隔符的字符串
	 * @return
	 */
	public static String[] split(String str){
		return split(SEPARATE, str);
	}
	
	/**
	 * 将以ConstUtils.SEPARATE_REST_PARAM为分隔符的字符串切分为数组
	 * @param paramStr 以ConstUtils.SEPARATE_REST_PARAM为分隔符的字符串
	 * @return
	 */
	public static String[] splitRestParam(String paramStr){
		return split(SEPARATE_REST_PARAM, paramStr);
	}
	
	/**
	 * 将以ConstUtils.SEPARATE_HBASE_PST_PGC为分隔符的字符串切分为数组
	 * @param paramStr 以ConstUtils.SEPARATE_HBASE_PST_PGC为分隔符的字符串
	 * @return
	 */
	public static String[] splitHBasePSTPGCParam(String paramStr){
		return split(SEPARATE_HBASE_PST_PGC, paramStr);
	}
	
	private static String[] split(String delimiter, String val){
		String[] arr = null;
		if(val.indexOf(delimiter) > 0){
			arr = val.split(delimiter);
		}else{
			arr = new String[]{val};
		}
		return arr;
	}
	
	/**
	 * 定义可选项参数的通用值，获取/显示指定的内容
	 * 与CONTENT_SHOW_NO相反
	 */
	public final static String CONTENT_SHOW_YES = "yes";
	
	/**
	 * 定义可选项参数的通用值，不获取/不显示指定的内容
	 * 与CONTENT_SHOW_YES相反
	 */
	public final static String CONTENT_SHOW_NO = "no";
	
	/**
	 * 验证可选参数值是否正确
	 * @param param
	 * @return
	 */
	public static boolean validContentShowValue(String param){
		if(param.equals(CONTENT_SHOW_YES) || param.equals(CONTENT_SHOW_NO)){
			return true;
		}
		return false;
	}
}
